package com.jt.www.model.vo.sdCheck;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Author: cjw
 * @Description: 险种查询对象
 * @Date: 10:46 2018/11/1
 */

@ApiModel
public class RiskForProVO {

    /**
     * 险种代码
     */
    @ApiModelProperty(value = "险种代码")
    private String riskCode = "";

    /**
     * 险种名称
     */
    @ApiModelProperty(value = "险种名称")
    private String riskName = "";

    /**
     * 险类编码
     */
    @ApiModelProperty(value = "险类编码")
    private String riskTypeCode = "";

    /**
     * 险类名称
     */
    @ApiModelProperty(value = "险类名称")
    private String riskTypeName = "";


    /**
     * 保险期间类型。 A——岁 Y——年 M——月 D——天
     */
    @ApiModelProperty(value = "保险期间类型。 A——岁 Y——年 M——月 D——天")
    private String policyTermType;

    /**
     * 保险期间
     */
    @ApiModelProperty(value = "保险期间")
    private String policyTerm;

    /**
     * 缴费频率    趸交（0） 年交（12） 月交（1） 季交（3）半年交（6）不定期交（-1）
     */
    @ApiModelProperty(value = "缴费频率    趸交（0） 年交（12） 月交（1） 季交（3）半年交（6）不定期交（-1）")
    private String paymentFreq;

    /**
     * 缴费期间类型 A——岁 Y——年 M——月 D——天
     */
    @ApiModelProperty(value = "缴费期间类型 A——岁 Y——年 M——月 D——天")
    private String paymentPeriodType;

    /**
     * 缴费期间
     */
    @ApiModelProperty(value = "缴费期间")
    private String paymentPeriod;

    /**
     * 主副标记
     */
    @ApiModelProperty(value = "主副标记")
    private String riskFlag2 = "";

    /**
     * 开始日期
     */
    @ApiModelProperty(value = "开始日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 结束日期
     */
    @ApiModelProperty(value = "结束日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * 保费
     */
    @ApiModelProperty(value = "应付保费")
    private BigDecimal prem = BigDecimal.ZERO;

    /**
     * 优惠保费
     */
    @ApiModelProperty(value = "优惠保费")
    private BigDecimal reducePrem = BigDecimal.ZERO;

    /**
     * 优惠前保费
     */
    @ApiModelProperty(value = "投保单优惠前保费")
    private BigDecimal beforePrem;

    /**
     * 优惠后保费
     */
    @ApiModelProperty(value = "投保单优惠后保费")
    private BigDecimal afterPrem;

    /**
     * 实付保费
     */
    @ApiModelProperty(value = "投保单实付保费")
    private BigDecimal actualPrem;

    /**
     * 险种档次
     */
    @ApiModelProperty(value = "险种档次")
    private String riskGrade = "";

    /**
     * 方案编码
     */
    @ApiModelProperty(value = "方案编码")
    private String programCode = "";

    /**
     * 保额
     */
    @ApiModelProperty(value = "保额")
    private BigDecimal amount;

    /**
     * 份数
     */
    @ApiModelProperty(value = "份数")
    private int quantity = 1;

    /**
     * 责任集合
     */
    @ApiModelProperty(value = "责任集合")
    private List<DutyForProVO> dutyList = new ArrayList<>();

    public String getRiskCode() {
        return riskCode;
    }

    public void setRiskCode(String riskCode) {
        this.riskCode = riskCode;
    }

    public String getRiskName() {
        return riskName;
    }

    public void setRiskName(String riskName) {
        this.riskName = riskName;
    }

    public String getRiskTypeCode() {
        return riskTypeCode;
    }

    public void setRiskTypeCode(String riskTypeCode) {
        this.riskTypeCode = riskTypeCode;
    }

    public String getRiskTypeName() {
        return riskTypeName;
    }

    public void setRiskTypeName(String riskTypeName) {
        this.riskTypeName = riskTypeName;
    }

    public String getPolicyTermType() {
        return policyTermType;
    }

    public void setPolicyTermType(String policyTermType) {
        this.policyTermType = policyTermType;
    }

    public String getPolicyTerm() {
        return policyTerm;
    }

    public void setPolicyTerm(String policyTerm) {
        this.policyTerm = policyTerm;
    }

    public String getPaymentFreq() {
        return paymentFreq;
    }

    public void setPaymentFreq(String paymentFreq) {
        this.paymentFreq = paymentFreq;
    }

    public String getPaymentPeriodType() {
        return paymentPeriodType;
    }

    public void setPaymentPeriodType(String paymentPeriodType) {
        this.paymentPeriodType = paymentPeriodType;
    }

    public String getPaymentPeriod() {
        return paymentPeriod;
    }

    public void setPaymentPeriod(String paymentPeriod) {
        this.paymentPeriod = paymentPeriod;
    }

    public String getRiskFlag2() {
        return riskFlag2;
    }

    public void setRiskFlag2(String riskFlag2) {
        this.riskFlag2 = riskFlag2;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public BigDecimal getPrem() {
        return prem;
    }

    public void setPrem(BigDecimal prem) {
        this.prem = prem;
    }

    public BigDecimal getReducePrem() {
        return reducePrem;
    }

    public void setReducePrem(BigDecimal reducePrem) {
        this.reducePrem = reducePrem;
    }

    public BigDecimal getBeforePrem() {
        return beforePrem;
    }

    public void setBeforePrem(BigDecimal beforePrem) {
        this.beforePrem = beforePrem;
    }

    public BigDecimal getAfterPrem() {
        return afterPrem;
    }

    public void setAfterPrem(BigDecimal afterPrem) {
        this.afterPrem = afterPrem;
    }

    public BigDecimal getActualPrem() {
        return actualPrem;
    }

    public void setActualPrem(BigDecimal actualPrem) {
        this.actualPrem = actualPrem;
    }

    public String getRiskGrade() {
        return riskGrade;
    }

    public void setRiskGrade(String riskGrade) {
        this.riskGrade = riskGrade;
    }

    public String getProgramCode() {
        return programCode;
    }

    public void setProgramCode(String programCode) {
        this.programCode = programCode;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public List<DutyForProVO> getDutyList() {
        return dutyList;
    }

    public void setDutyList(List<DutyForProVO> dutyList) {
        this.dutyList = dutyList;
    }
}
